package com.java.mybatis.controller;

import com.java.mybatis.entity.Roles;
import com.java.mybatis.service.RolesService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;
import java.util.List;

/**
 * (Roles)表控制层
 *
 * @author makejava
 * @since 2021-01-15 17:10:28
 */
@Controller
@RequestMapping("/roles/")
public class RolesController {
    /**
     * 服务对象
     */
    @Resource
    private RolesService rolesService;

    /**
     * 通过主键查询单条数据
     *
     * @param id 主键
     * @return 单条数据
     */
    @GetMapping("selectOne")
    public Roles selectOne(Integer id) {
        return this.rolesService.queryById(id);
    }
    /**
     * 查询所有角色信息
     * @return 对象序列
     */
    @GetMapping("selectAllRoles")
    public String selectAllRoles(Model model){
        //调用查询所有员工信息的方法
        List<Roles> roles = rolesService.selectAllRoles();
        //将返回的值存入model中
        model.addAttribute("roles",roles);
        //得到总条数的方法
        model.addAttribute("ids",roles.size());
        //返回对应的页面
        return "System/admin-rule";
    }
    /**
     * 删除角色的方法
     * */
    @RequestMapping("delRolesById")
    public String delRolesById(Model model,Integer id){
        try {
            //调用禁用的方法
            rolesService.upRolesCode(id);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "redirect:/roles/selectAllRoles";
    }
    /**
     * 批量删除的方法
     * @return
     */
    @RequestMapping("delRolesAll")
    public String delRolesAll(String str) throws Exception {
        String[] split = str.split(",");
        System.out.println("获取到的所有部门编号:"+str);
        for (String s : split) {
            System.out.println("获取到的所有角色编号:"+s);
            rolesService.upRolesCode(Integer.parseInt(s));
        }
        return "redirect:/roles/selectAllRoles";
    }

    /**
     *根据角色名称查询角色信息的方法
     * @param rolesName 角色名字
     * @return 所有角色信息封装成的一个List<Roles>集合
     */
    @RequestMapping("selectRoles")
    public String selectRoles(String rolesName){
        //测试是否获取到数据
        System.out.println("获取到的角色名字:"+rolesName);
        //调用查询角色名字的方法
        List<Roles> roles = rolesService.rolesQuery(rolesName);
        //测试是否获取成功
        System.out.println("获取到的角色信息:"+roles);
        return "redirect:/roles/selectAllRoles";
    }
}